home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / os2 / remin301.zip / REMIN300.ZIP / REMIND-A.CSH < prev    next >
Linux/UNIX/POSIX Shell Script  |  1992-11-10  |  1KB  |  46 lines

  1. #!/bin/csh -f
  2.  
  3. # Shell script to mail all users reminders.
  4.  
  5. # Run it AFTER MIDNIGHT so that date is correct!
  6. # On our system, we have the following in our crontab:
  7. # 05 5 * * * /usr/share/lib/remind/remind-all > /dev/null 2>&1
  8.  
  9. # Also, you MUST use the -r and -q options on REMIND, otherwise SEVERE
  10. # security hole could develop.  I recommend making this script
  11. # readable and executable only by root to minimize security problems.
  12. # DO NOT make the script setuid!
  13.  
  14. # The following line gets a list of users for systems using SUN's
  15. # NIS service:
  16. set USERS  = `ypcat passwd | awk -F: '{print $1}'`
  17.  
  18. # The following line gets a list of users by examining /etc/passwd:
  19. # set USERS = `awk -F: '{print $1}' /etc/passwd`
  20.  
  21. # If neither of the above methods works, you must come up with some
  22. # way of getting a list of users on the system
  23.  
  24. # Set the following variables as appropriate for your system
  25. set REMIND = /usr/local/bin/remind
  26. set MAIL   = /usr/ucb/mail
  27. set RM     = "/usr/bin/rm -f"
  28.  
  29. set REMFILE   = /tmp/RemFile.$$
  30.  
  31. # Scan each user's directory for a .reminders file
  32. foreach i ($USERS)
  33.    if (-r ~$i/.reminders) then
  34.  
  35. #     echo "$i has a .reminders file."     DEBUGGING PURPOSES ONLY
  36.  
  37.       su - $i -c "$REMIND -rqh ~$i/.reminders" < /dev/null > $REMFILE
  38.       if (! -z $REMFILE) then
  39. #        echo "Sending mail to $i"         DEBUGGING PURPOSES ONLY
  40.  
  41.          $MAIL -s "Reminders" $i < $REMFILE
  42.       endif
  43.       $RM $REMFILE
  44.    endif
  45. end
  46.